package com.xiaoshuidi.cloud.module.rooms.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xiaoshuidi.cloud.framework.mybatis.core.dataobject.BaseDO;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * 房源表
 * </p>
 *
 * @author hans.zhang
 * @since 2023-05-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("room_house")
@Schema(description = "房源表")
public class RoomHouse extends TenantBaseDO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "房间id")
    @TableId(value = "id", type = IdType.INPUT)
    private Long id;

    @Schema(description = "名称")
    private String name;

    @Schema(description = "内部生成编号")
    private String no;

    @Schema(description = "省份")
    private String province;

    @Schema(description = "城市")
    private String city;

    @Schema(description = "区域")
    private String district;

    @Schema(description = "街道")
    private String street;

    @Schema(description = "详细地址")
    private String address;

    @Schema(description = "小区")
    private String area;

    @Schema(description = "面积")
    private Double space;

    @Schema(description = "可住人数")
    private Integer peopleNum;

    @Schema(description = "公寓id")
    private Long apartmentId;

    @Schema(description = "可租日期")
    private LocalDate canRentDate;

    @Schema(description = "月租金")
    private Double monthRental;

    @Schema(description = "房间描述")
    private String roomDesc;

    @Schema(description = "主卧次卧客卧公共区域")
    private String roomType;

    @Schema(description = "房间备注")
    private String remark;

    @Schema(description = "装修情况")
    private String decoration;

    @Schema(description = "房型")
    private Long layoutId;

    @Schema(description = "关联户型ID")
    private Long roomHouseTypeId;

    @Schema(description = "是否停用")
    private Boolean isStop;

    @Schema(description = "是否是上一次停用")
    private Boolean isLastStop;

    @Schema(description = "楼层")
    private Long floorId;

    @Schema(description = "楼")
    private String floorNo;

    @Schema(description = "门牌号")
    private String houseNo;

    @Schema(description = "整租")
    private Boolean isWhole;

    @Schema(description = "房间数")
    private Integer roomNum;

    @Schema(description = "上级ID")
    private Long superId;

    @Schema(description = "图片url,多张采用英文逗号分割")
    private String picUrl;

    @Schema(description = "视频URL，多条采用英文逗号分割")
    private String videoUrl;

    @Schema(description = "vr封面url")
    private String vrPicUrl;

    @Schema(description = "vr URL,多条采用英文逗号分割")
    private String vrUrl;

    @Schema(description = "公寓所属小区的ID")
    private Long apartmentAreaId;

    @Schema(description = "朝向,字典中获取，直接存储description")
    private String toward;

    @Schema(description = "集中式?")
    private Boolean isConcentrated;

    @Schema(description = "独用设施")
    private String publicFacilities;

    @Schema(description = "是否锁定")
    private Boolean isLock;


    @Schema(description = "部门编号")
    private Long deptId;
    @Schema(description = "栋")
    private String buildingNo;

    @Schema(description = "单元")
    private String unitNo;

    @Schema(description = "房源类型(用途): 办公室、住房")
    private String roomUsage;

    @Schema(description = "净房还是脏房")
    private Boolean isClean;

    @Schema(description = "是否维修房")
    private Boolean isRepair;

    @Schema(description = "是否上架")
    private Boolean grounding;

}
